package com.xiaoc.bulldozer.common.dao;

import java.util.List;

import com.xiaoc.bulldozer.common.dto.StatisticTalentDto;
import com.xiaoc.bulldozer.common.dto.StatisticTalentQueryDto;
import com.xiaoc.bulldozer.common.model.StatisticTalent;

/**
 * StatisticTalent Mapper 接口
 *
 * @author Danfo Yam
 * 
 * @date 2018-09-14 16:20:57
 */
public interface StatisticTalentMapper {

    /**
     * 根据条件查询StatisticTalent数量
     
     * @param StatisticTalentQueryDto
     *
     * @return 满足查询条件的记录数量
     */
    public Integer getStatisticTalentCountByCondition(StatisticTalentQueryDto statisticTalentQueryDto);
    
    /**
     * 根据条件查询支行汇总记录数量
     
     * @param StatisticTalentQueryDto
     *
     * @return 满足查询条件的记录数量
     */
    public Integer groupStatisticTalentCountByCondition(StatisticTalentQueryDto statisticTalentQueryDto);
    
    
    /**
     * 根据条件分页查询StatisticTalent列表
     *
     * @param StatisticTalentQueryDto
     *
     * @return 满足查询条件的StatisticTalent列表
     */
    public List<StatisticTalent> getStatisticTalentListByCondition(StatisticTalentQueryDto statisticTalentQueryDto);
    
    /**
     * 根据条件分页查询 渠道经理报表
     */
    public List<StatisticTalentDto> getStatisticTalentDtoListByCondition(StatisticTalentQueryDto statisticTalentQueryDto);
    
    /**
     * 根据条件分页查询 支行汇总报表
     */
    public List<StatisticTalentDto> groupStatisticTalentDtoListByCondition(StatisticTalentQueryDto statisticTalentQueryDto);
    
    /**
     * 根据Id获取StatisticTalent
     * 
     * @param id
     *
     * @return StatisticTalent对象
     */
    public StatisticTalent getStatisticTalentById(Integer id);

    /**
     * 获取所有StatisticTalent列表
     * 
     * @return StatisticTalent列表
     */
    public List<StatisticTalent> getAllStatisticTalentList();

    /**
     * 新增StatisticTalent
     * 
     * @param statisticTalent
     *
     * @return void
     */
    public void save(StatisticTalent statisticTalent);

    /**
     * 更新StatisticTalent
     * 
     * @param statisticTalent
     *
     * @return void
     */
    public void update(StatisticTalent statisticTalent);

    /**
     * 根据Id删除StatisticTalent
     * 
     * @param id
     *
     * @return void
     */
    public void deleteById(Integer id);
    
    /**
     * 根据statisticTalentQueryDto删除StatisticTalent
     * 
     * @param statisticTalentQueryDto
     *
     * @return void
     */
    public void deleteByYearMonth(StatisticTalentQueryDto statisticTalentQueryDto);
    
    /**
     * 查询一段时间内，渠道经理获得的点赞数
     */
    public List<StatisticTalent> countPartner(StatisticTalentQueryDto statisticTalentQueryDto);
    
    /**
     * 查询一段时间内，渠道经理获得的注册用户数
     */
    public List<StatisticTalent> countAccount(StatisticTalentQueryDto statisticTalentQueryDto);
    
    /**
     * 查询一段时间内，渠道经理获得的申贷数
     */
    public List<StatisticTalent> countLoan(StatisticTalentQueryDto statisticTalentQueryDto);

}
